With the proliferation of signaling protocols, many radio communication systems today modulate messages using a hybrid of multi-level signaling techniques such as, for example, 2-level FSK (frequency shift keyed) signaling, and 4-level FSK signaling. Each technique can have multiple baud rates such as, for example, 4-level FSK signaling at 6400 bits per second (bps), 3200 bps, or 1600 bps, and 2-level FSK signaling at 3200 bps or 1600 bps. Moreover, each technique may also have multiple frequency deviations for each symbol of data, e.g., a 4-level FSK signal can have deviations at .+-.800 Hz and .+-.2400 Hz, or at .+-.1600 Hz and .+-.3200 Hz.
In practice, a selective call receiver (SCR) that receives messages from the communication system is sometimes required to scan for a control channel that transmits messages in a signaling format consistent with that used by the SCR. Traditionally, the SCR uses baud rate detection to determine if a proper signal is present on a given channel by examining a short burst of a signal transmitted by the radio communication system. This method allows the SCR to quickly detect if a channel has an active signal.
However, this method requires that symbol levels of a multi-level signal be known in order to examine zero crossings of the recovered waveform. The zero crossings are used to detect the symbol rate of the signal, i.e., its baud rate. Because signal levels are traditionally derived from the received signal, the baud rate detection process is data-dependent, and at times subject to error. For example, an error can occur when a long string of identical symbols is received. In this situation, the baud rate detector is unable to determine the levels of the multi-level signal, and therefore cannot determine the location of the zero crossings to calculate a baud rate. Moreover, the performance of a traditional baud rate detector is further degraded by spreading of the zero crossings due to an inherent characteristic of multi-level signals. Furthermore, traditional baud rate detection cannot classify a multi-level signal by its frequency deviations. That is, it may provide the same result for a 4-level FSK signal having frequency deviations at .+-.800 Hz and .+-.2400 Hz, or at .+-.1600 Hz and .+-.3200 Hz. Hence, the SCR may incorrectly intercept a 4level FSK signal with the wrong frequency deviations.
Finally, although signaling protocols such as the well known FLEX.RTM. signaling protocol provide an indicator of the signaling characteristics (speed and levels) of a frame at the beginning of each frame, using this indicator in a scanning situation would require finding and awaiting the beginning of a frame for each channel being scanned, a task that is made impractical when the control channel has not yet been identified and a task that would be slow even if a the control channel has been identified.
More recently, a technique for classifying a multilevel signal according to its level and baud rate has been described, in U.S. Pat. No. 5,832,038, entitled "METHOD AND APPARATUS FOR CLASSIFYING A MULTI-LEVEL SIGNAL", issued to Carsello on Nov. 3, 1998, and assigned to the assignee hereof. In the description of Carsello, a multi-level signal that is one of a predetermined set of signal types having two predetermined levels and two predetermined baud rates is classified as to its levels and baud rate. The classification is achieved by receiving the multi-level signal; demodulating the multi-level signal to provide baseband samples for each symbol (each baseband sample having a phase and a signal level), and classifying the signal type of the multi-level signal from the phases and signal levels of the baseband samples. The classification of the signal as to type of level (e.g., 4 level versus 2 level) is achieved by steps of tallying, correlating, and determining the signal type.
In the step of tallying, a tally is made, by category, of occurrences of the baseband samples, wherein each category is representative of one of a plurality of phases, and one of a plurality of signal level ranges. This is illustrated in FIG. 1, which is a histogram of 1728 simulated baseband samples of a 4 level signal modulated at 3200 symbols per second (sps) with frequency deviations of .+-.800 Hertz (Hz) and .+-.2400 Hz, as impacted by random noise. The symbols in this example are sampled 6 times per symbol, for a total duration of 90 milliseconds. The histogram has three axes: a first horizontal axis labeled TIMING PHASE having 6 phases, a second horizontal axis labeled SIGNAL LEVEL (Hz) that covers 800 Hz intervals from -6400 Hz to +6000 Hz, and a vertical axis labeled NUMBER OF OCCURRENCES having values for tallies up to 80. FIG. 1 is taken from FIG. 2 of Carsello, and is described in more detail in Carsello, column 3, line 24 to column 4, line 53.
In a first step of correlating, a correlation is made by phase and frequency of the category tallies to a desired template. In the description in Carsello, the desired template is a binary word that represents frequency intervals at which frequency deviations of a desired received signal are expected. In the example described, the desired template is W.sub.4 =[11001100110011], in which each bit of the desired template represents a 400 Hz interval. The 1's represent frequency intervals within which frequency deviations of baseband samples of the desired signal are expected to occur when the desired signal is received with little or no noise. The 0's represent frequency intervals within which frequency deviations of baseband samples of the desired signal are expected not to occur when the desired signal is received with little or no noise. The correlation is made using the following function ##EQU1##
in which .theta. is the phase (values of 0 through 5), k is a variable that represents a multiple of a 400 Hz frequency offset between the carrier frequency of the received signal and an internal reference frequency, s represents a multiple of 400 Hz intervals in a range of the expected frequency deviations, and h(.theta.,s+k) represents the tallied values of the histogram. The result of this correlation calculation, C.sub.4 (.theta.,k), can be presented as a histogram, which normally has a peak at an optimum phase, .theta.*.sub.4, and offset, k*.sub.4, when the received signal is sufficiently undistorted.
In a second step of correlating, a correlation is made by phase and frequency of the category tallies to an undesired template. The undesired template is a binary word that represents frequency intervals at which frequency deviations of an undesired received signal are expected. In the description of Carsello, the undesired signal is one of the predetermined set of signal types. In the example described, the undesired template is W.sub.2 =[1111000000001111], in which each bit of the undesired template represents a 400 Hz interval. The 1's represent frequency intervals within which frequency deviations of baseband samples of the undesired signal are expected to occur when the undesired signal is received with little or no noise. The 0's represent frequency intervals within which frequency deviations of baseband samples of the undesired signal are expected not to occur when the undesired signal is received with little or no noise. The correlation is made using the following function: ##EQU2##
in which .theta., k, s, and h(.theta.,s+k) represent the same variables and function as for C.sub.4 (.theta.,k). The result of this correlation calculation, C.sub.2 (.theta.,k), can be presented as a histogram, which normally has a peak at an optimum phase, .theta.*.sub.2, and optimum offset, k*.sub.2, when the received signal is sufficiently undistorted.
In the step of determining, the signal type of the multi-level signal is determined by its level (i.e., 4 level versus 2 level) according to the correlation results. The determination is made by comparing a maximum value of C.sub.4 (.theta.,k) to a first predetermined threshold and by comparing a maximum value of C.sub.2 (.theta.,k) to a second predetermined threshold. The first and second predetermined thresholds are values above which the maximum values of the correlation results will occur to a high probability when the radio frequency (RF) input power, respectively, of the desired signal or undesired signal is sufficient. When the maximum value of C.sub.4 (.theta.,k) is less than or equal to the first predetermined threshold (thereby failing to substantially match the desired template), or the maximum value of C.sub.2 (.theta.,k) is greater than or equal to the second predetermined threshold (thereby substantially matching the undesired template), the received signal is rejected as not being of the desired signal level type (which is 4 level in the example). Otherwise, the received signal is accepted as being of the desired signal level type.
Carsello further describes classifying the received signal as to type of baud rate (e.g., 1600 baud versus 3200 baud). To achieve this, an even baud rate function and an odd baud rate function are described. These functions are: ##EQU3##
wherein n is a symbol index, s(6n+.theta.) is a signal level of a baseband sample at a particular phase or a selected symbol, and s(6n-6+.theta.) is a signal level of a baseband sample at the same phase for an immediately preceding (i.e., adjacent) symbol. The symbol index n is selected to skip every other symbol in the total batch of symbols accumulated in a sampling window of 90 ms. Recalling that the total batch of symbols in the example used in Carsello is 288, n.sub.even represents 144 even symbols in the batch of 288 symbols, while n.sub.odd represents 144 odd symbols in the same batch. The principle behind the baud rate classification technique is that at least one of the plurality of summations generated by B.sub.3200,e (.theta.) and B.sub.3200,o (.theta.) will have a substantially low result when a received signal has a baud rate that is an undesired submultiple such as, for example, 1600 baud, when .theta.=.theta.*, and a desired signal is 3200 baud. The determination is made by comparing a minimum value of the plurality of summations to a third predetermined threshold, which is a value below which the minimum value of the baud rate correlation results will occur with a high probability when the RF input power of a signal having an undesired baud rate is sufficient.
The technique described in Carsello is excellent for classifying a received signal as a selected one of the predetermined set of multilevel signals by using a fixed number of samples. However, it does not describe a technique to minimize the number of symbols, and therefore, the time needed, to classify the signal, nor does it account for affects such as a spurious signal occurring within the bandwidth of the desired signal or signals. Thus, what is needed is a method and apparatus that allows a selective call receiver to properly classify, by its baud rate and signal levels, a multi-level signal that is compatible with the SCR in an optimally short time.